cocoapods 安装 WCDB 报“Permission denied”错误

说明

腾讯去年开源的数据库第三方库WCDB 无疑成为了开发圈里的话题,作为一款生产工具,它绝不是话题那么简单,很多开发者都开始围绕 WCDB 优化自己的项目了。不过在使用之前也可能会遇到一些小问题,比如pod安装 WCDB 的时候,会修改xcode部分目录下的一些文件,这其中包括新增模板和代码块。当新增代码块的时候,有时候会安装失败,原因是保存代码快的目录~/Library/Developer/Xcode/UserData/CodeSnippets/属于 root 用户,对root用户为可读写,对其他用户为只读,所以,运行$pod install ,最终会报出有关权限不够的错误:Permission denied

Permission denied 错误

pod install 
Analyzing dependencies
[!] The version of CocoaPods used to generate the lockfile (1.5.3) is higher than the version of the current executable (1.5.2). Incompatibility issues may arise.
Downloading dependencies

Installing WCDB (1.0.6)
  [!] /bin/bash -c 
  set -e
git submodule update --init sqlcipher;                           cd tools/templates; sh install.sh; cd ../..;                           cd sqlcipher; make -f Makefile.preprocessed; cd ..;                           cp sqlcipher/ext/fts3/fts3_tokenizer.h sqlcipher/

Submodule path 'sqlcipher': checked out 'd4726337010f60408a9c99633b35f01a8a7ae2de'
Submodule 'sqlcipher' (https://github.com/Tencent/sqlcipher.git) registered for path 'sqlcipher'
Cloning into '~/Library/Caches/CocoaPods/Pods/Release/WCDB/1.0.6-4d292/sqlcipher'...
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.ColumnCodableClass.Data.swift.codesnippet: Permission denied
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.ColumnCodableClass.Double.swift.codesnippet: Permission denied
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.ColumnCodableClass.Int32.swift.codesnippet: Permission denied
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.ColumnCodableClass.Int64.swift.codesnippet: Permission denied
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.ColumnCodableClass.String.swift.codesnippet: Permission denied
cp: ~/Library/Developer/Xcode/UserData/CodeSnippets/WCDB.TableCodableClass.swift.codesnippet: Permission denied  

解决方案

###方法一

$cd  ~/Library/Developer/Xcode/UserData/

$sudo chmod -R 777 CodeSnippets
$cd "你的工程目录"
$pod install

###方法二
前往以下文件夹

~/Library/Developer/Xcode/UserData/

找到以下文件夹

CodeSnippets

右键-显示简介

在右下方解除锁定,修改staff用户的权限为读写